
const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    //判断小程序的API，回调，参数，组件等是否在当前版本可用。
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    pkh: "",
    depk: "",
    vdisplay: "none",
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (options && options.pkh) {
      this.setData({
        pkh: options.pkh,
        depk: options.depk
      });
    }
    this.onLoadLogin();
  },

  onLoadLogin: function(){
    //文档：https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html
    // 1. 查看是否授权，已授权直接获取，未授权跳转授权页面
    // 获取用户信息，如果不进行授权就换取不到userinfo头像、名称、地址等信息
    wx.getSetting({
      success: res => {
        //res:{"errMsg":"getSetting:ok","authSetting":{"scope.userInfo":true}}
        console.log("查看用户是否授权 getSetting：" + JSON.stringify(res.data));
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              //res:{"errMsg":"getUserInfo:ok","rawData":"{\"nickName\":\"name\",\"gender\":1,\"language\":\"zh_CN\",\"city\":\"Shenzhen\",\"province\":\"Guangdong\",\"country\":\"China\",\"avatarUrl\":\"https://wx.qlogo.cn/mmopen/vi_32/U8ZFyRNZHRDy7nPUI2qNt19t5FmrSqPmLicvbe9tubEHAU6DF2MOKDliasuqSMJSu3aNgZfCVMHHqicMKvNtkaB3g/2\"}","userInfo":{"nickName":"name","gender":1,"language":"zh_CN","city":"Shenzhen","province":"Guangdong","country":"China","avatarUrl":"https://wx.qlogo.cn/mmopen/vi_32/U8ZFyRNZHRDy7nPUI2qNt19t5FmrSqPmLicvbe9tubEHAU6DF2MOKDliasuqSMJSu3aNgZfCVMHHqicMKvNtkaB3g/3"},"signature":"9cc24a6750d96cd47b84ad46253c21184f8c7290","encryptedData":"Io11ioKOHDI4JYRODoSsa2b96bKka6+bn6qtj3km7NAi+zD+FmcjlpWYlk7WM+Ij3y7S1wmPDMCoA4uptv6zZD+H9w6lLEdzeaE51Kc0GPPSPtv/fE1jRhzkGA6leVjDXrY2/B0eMHFYBHWYZW22KGnX30UI9BP/k7/+ka9BgzulguvefwE4OiWbk/Z8hVHKhQy3C6AI1vPl5RuPrrngvIcBdnHcbGlcUPqU5HrqXtKiU+gusZGv4O5l5yx95oPnMKaX/RNc75N6FXLjLah1iZc2NwErSkpLJMdqLqhB+FsuZO6KvleVklEUkBVP+8nD2yG0NUwIuaWKSbO6E+YBesBFOCiNgmv2eG4Yg/g+5Pcl70YyQ9hkd8JQsESO1KECAiJ+luf07sZI0xzqRk658/EhrcZlNzB3IWB6D/66Zh84zGyBoxLC0CmPHUbvc6zQh0iHPa/IHB+cMvX01rfpDAyjJwwPPBi6nEq5mx++n04=","iv":"/mehdHoGRtPLeuJ0VP2QLg=="}
              // 可以将 res 发送给后台解码出 unionId
              app.globalData.userInfo = res.userInfo
              console.log("获取用户用户详细信息 UserInfo：" + JSON.stringify(res.userInfo));

              //2. 微信已经授权，直接获取后端用户信息
              this.userLogin(res.userInfo);

              //3. 用户没有授权，跳去按钮授权

              //获取授权成功跳转到首页
              // console.log("获取授权成功");
              // wx.switchTab({
              //   url: '/pages/index/index'
              // })
              // return;
              
              // 这一句放到最后！！！
              //由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }

            }
          })
        }
        else{
          this.setData({
            vdisplay: "block"
          })
        }
      },
      fail: function (res) { },
      complete: function (res) { },
    });
  },

  //用户按了允许授权按钮
  bindGetUserInfo: function (e) {

    if (e.detail.userInfo) {
      //存入userInfo全局变量
      app.globalData.userInfo = e.detail.userInfo;
      //这里地址获取到的是中文，广东深圳，button设置lang="zh_CN"
      console.log("auth点击授权userInfo:" + JSON.stringify(e.detail.userInfo));

      //换取并openid并获取后台信息
      this.userLogin(e.detail.userInfo);
    } 
    // else {
    //   用户按了拒绝按钮
    //   wx.showModal({
    //     title: '提示',
    //     content: '您点击了拒绝授权，点击继续授权',
    //     showCancel: false,
    //     confirmText: '返回授权',
    //     success: function (res) {
    //       if (res.confirm) {
    //         console.log('用户点击了“返回授权”')
    //       }
    //     }
    //   });
    // }
  },

  //自定义登陆，可以放在app加载完成调用，wx.login()放在“启动页”会没有效果
  //登陆完成后查询并返回数据等业务
  userLogin: function (userInfo){
    let that = this;
    // 登录，通过此接口换取openid及本次登录的会话密钥（session_key）
    wx.login({
      success: res => {
        //res:{"errMsg":"login:ok","code":"02394wJV1py9tX0O40MV1PfNJV194wJG"}
        //发送 res.code 到后台换取 openId, sessionKey, unionId（多公众号统一id）
        wx.request({
          url: app.globalData.urlPath + "/api/WeChat/Login",
          method: 'POST',
          data: {
            //OpenID: app.globalData.openid,//后端换取的，前端这时候根本没有
            Source: app.globalData.appSource,
            Param: {
              ResCode: res.code,
              NickName: userInfo.nickName,
              AvatarUrl: userInfo.avatarUrl,
              Province: userInfo.province,
              City: userInfo.city,
              Language: userInfo.language,
              Country: userInfo.country
            }
          },
          success: res => {
            //换取成功，保存全局openid
            app.globalData.openid = res.data.openid;
            console.log("登录成功，换取Openid：" + app.globalData.openid);
            app.globalData.loginInfo = res.data;
            //日期格式
            app.globalData.loginInfo.Data.CreateTime = app.globalData.loginInfo.Data.CreateTime.substring(0,10);

            console.log("登录成功，换取后台mgxUserInfo：" + JSON.stringify(app.globalData.loginInfo));
            app.globalData.userHash = res.data.userHash;
            app.globalData.loginInfo.amount = res.data.amount;

            //授权成功，如果有金币，就跳转到抢金币页面
            if(that.data.pkh){
              wx.redirectTo({
                url: '/pages/mangox/getpackage/getpackage?pkh='+ that.data.pkh +'&depk='+ that.data.depk +'',
              })
              return;
            }
            else{
              //授权成功并换取数据等之后，返回首页
              console.log("授权成功返回首页页");
              wx.switchTab({
                url: '/pages/index/index'
              })
            }

            // //把授权的用户的相关信息写入数据库
            // wx.request({
            //   url: app.globalData.urlPath + '/api/UserMgx/Auth_wx',
            //   method: 'POST',
            //   data: {
            //     openid: app.globalData.openid,
            //     nickName: e.detail.userInfo.nickName,
            //     avatarUrl: e.detail.userInfo.avatarUrl,
            //     province: e.detail.userInfo.province,
            //     city: e.detail.userInfo.city,
            //     language: e.detail.userInfo.language,
            //     country: e.detail.userInfo.country
            //   },
            //   success: function (res) {
            //     app.globalData.loginInfo.Token = res.data.TokenUpdate;
            //     //保存用户详细信息成功，包含asp.net的服务器信息和业务保存成功模型
            //     //可用于别名个性化设置
            //     console.log("auth保存用户详细信息:" + JSON.stringify(res.data));
            //   }
            // });

            //登陆完成获取用户信息，这里不需要，因为添加完成会返回详细信息
            //this.queryUsreInfo();

          }
        });
      }
    });


  },
  
  
  //微信已授权，获取用户信息接口
  queryUsreInfo: function () {
    wx.request({
      url: getApp().globalData.urlPath + '/api/UserMgx/GetUserApplet',
      data: {
        openid: getApp().globalData.openid
      },
      header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        app.globalData.loginInfo.Token = res.data.TokenUpdate;
        console.log("获取db用户信息成功 globalData.userInfo_db->>");
        getApp().globalData.userInfo_db = res.data;

        console.log(getApp().globalData.userInfo_db);
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})